/*******************************************************************************
 * Package: com.hngtrust.iir.bond.service.impl
 * Type:    BondBusService
 * Date:    2021/12/14 11:09 上午
 *
 * Copyright (c) 2021 -------- -------- CORP.,LTD All Rights Reserved.
 *
 * You may not use this file except in compliance with the License.
 *******************************************************************************/
package com.hngtrust.iir.bond.service;

import com.hngtrust.framework.bind.ResponseInfo;
import com.hngtrust.framework.page.PageResult;
import com.hngtrust.iir.bond.dto.*;
import com.hngtrust.iir.dto.ReqDTO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 债券信息
 *
 * @author Chaidd
 * @date 2021/12/14 11:09 上午
 */

public interface BondBusService {

    /**
     * 债券信息查询
     * @param bondReq
     * @return
     */
    ResponseInfo<PageResult<BondRespVO>> queryBond(ReqDTO<BondReq> bondReq);

    /**
     * 债券类型查询
     * @return
     */
    ResponseInfo<List<BondTypeRespVO>> queryBondType();

    /**
     * 债券模板下载
     * @param response
     */
    void templateDownload(HttpServletResponse response);

    /**
     * 解析批量查询Excel文件
     * @param file
     * @return
     */
    ResponseInfo<BondTmpRespVO> queryBatchBond(MultipartFile file) throws IOException;

    /**
     * 导出债券信息
     * @param bondReq
     * @param response
     */
    void dataExport(ReqDTO<BondReq> bondReq, HttpServletResponse response) throws IOException;


    /**
     * 债券评级详情查询
     * @param bondDetailReq
     * @return
     */
    ResponseInfo<PageResult<BondRatingDetailRespVO>> queryBondRating(ReqDTO<BondDetailReq> bondDetailReq);

    /**
     * 债券信息详情查询
     * @param bondDetailReq
     * @return
     */
    ResponseInfo<BondDetailRespVO> queryBondDetail(ReqDTO<BondDetailReq> bondDetailReq);

}
